import $http from "@/http";
import {closeLoading} from "@/utils/loading";
import {VUE_BASE_URL} from "@/aconst/const";

let audio: any = new Audio();
var isPlaying: any = false;
var autoplay: any = false;

export const playAudio = (url: any = "") => {
    $http.get(VUE_BASE_URL + url, {responseType: "blob"})
        // $http.get(url, {responseType: "blob"})
        .then((res: any) => {
            closeLoading();
            if (isPlaying) return false;
            isPlaying = true;
            audio.pause();
            //两种形式都行
            // audio.src = require('@/assets/require_approval.mp3');
            audio.src = URL.createObjectURL(res.data);
            audio.play();
            audio.onended = () => {
                isPlaying = false;
            }
        });
};

// require_approval.mp3，mp3文件 通过webpack打包成本地的base64格式，所以不用在canplay事件之后才调用play，
// 直接写成同步代码，如果src是一个远程的url，那么就得监听canplay事件，然后在里面play.
// export const testPlayAudio = () => {
//     // 返回一个promise以告诉调用者检测结果
//     return new Promise(resolve => {
//         let audio = document.createElement('audio');
//         // require一个本地文件，会变成base64格式
//         audio.src = require('@/assets/require_approval.mp3');
//         document.body.appendChild(audio);
//         let autoplay = true;
//         // play返回的是一个promise
//         audio.play().then(() => {
//             // 支持自动播放
//             autoplay = true;
//             //console.log("支持自动播放", autoplay)
//         }).catch(err => {
//             // 不支持自动播放
//             autoplay = false;
//             //console.log("不支持自动播放", autoplay)
//
//         }).finally(() => {
//             audio.remove();
//             //console.log(autoplay);
//             // 告诉调用者结果
//             resolve(autoplay);
//         });
//     });
// };
//
// class AudioUtil {
//     testAutoPlay() {
//         // 返回一个promise以告诉调用者检测结果
//         return new Promise(resolve => {
//             let audio = document.createElement('audio');
//             // require一个本地文件，会变成base64格式
//             audio.src = require('@/assets/require_approval.mp3');
//             document.body.appendChild(audio);
//             let autoplay = true;
//             // play返回的是一个promise
//             audio.play().then(() => {
//                 // 支持自动播放
//                 autoplay = true;
//                 //console.log("支持自动播放", autoplay)
//             }).catch(err => {
//                 // 不支持自动播放
//                 autoplay = false;
//                 //console.log("不支持自动播放", autoplay)
//
//             }).finally(() => {
//                 audio.remove();
//                 //console.log(autoplay);
//                 // 告诉调用者结果
//                 resolve(autoplay);
//             });
//         });
//     };
//
//
// // 监听页面的点击事件，一旦点过了就能autoplay了
//     setAutoPlayWhenClick() {
//         function setAutoPlay() {
//             // 设置自动播放为true
//             autoplay = true;
//             document.removeEventListener('click', setAutoPlay);
//             document.removeEventListener('touchend', setAutoPlay);
//         }
//
//         document.addEventListener('click', this.setAutoPlayWhenClick);
//         document.addEventListener('touchend', this.setAutoPlayWhenClick);
//     }
//
//     init() {
//         // 检测是否能自动播放
//         this.testAutoPlay().then(autoplay => {
//             if (!autoplay) {
//                 autoplay = autoplay;
//             }
//         });
//         // 用户点击交互之后，设置成能自动播放
//         this.setAutoPlayWhenClick();
//     }
//
// }
//
